package cn.zqh.user.service;


import cn.zqh.bean.api.CommonResult;
import cn.zqh.bean.bo.AdminChangeUserInfo;
import cn.zqh.bean.bo.User;
import cn.zqh.bean.bo.UserChangeUserInfo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zqh
 * @since 2022-12-24
 */
public interface UserService extends IService<User> {


    /**
      * @Author: zqh
      * @Date:
      * @Description: 注册一个新用户
    */
    CommonResult createANewUser(String qq, String password,String Code);

    /**
      * @Author: zqh
      * @Date:
      * @Description: 管理员修改用户信息
    */
    CommonResult adminChangeInfo(AdminChangeUserInfo adminChangeUserInfo);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 修改密码
    */
    CommonResult changePassword(String userId, String password);
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 用户修改自己信息
    */
    CommonResult userCgOwnMation(UserChangeUserInfo userChangeUserInfo);
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 通过用户id删除用户
    */
    CommonResult delUserById(String userId);

    /**
      * @Author: zqh
      * @Date:
      * @Description: 查看已被禁用的账号带分页
    */
    CommonResult getDelUser(Integer page, Integer size);
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 取消被删除了用户
    */
    CommonResult cancelTheDeletedUser(String userId);
     
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 分页查询未被删除的用户
    */
    CommonResult getAllUserByPage(Integer page, Integer size);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 通过邮箱查询用户拥有的权限
    */
    CommonResult getUserPermission(String email);

    /**
      * @Author: zqh
      * @Date:
      * @Description: 获取当前登录用户的信息
    */
    CommonResult getLoginUserInfo();

    /**
      * @Author: zqh
      * @Date:
      * @Description: 通过id查询某个用户信息
    */
    CommonResult getuserById(String userId);


    /**
      * @Author: zqh
      * @Date:
      * @Description: 获取所有用户的数量
    */
    CommonResult getAllUserNumbers();
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 管理员钱增加
    */
    CommonResult AdminUserAddMoney(Double money);
    
    
    /**
      * @Author: zqh
      * @Date: 
      * @Description: 某个用户钱减少
    */
    CommonResult userReMoney(String userId, Double money);
}
